//
// Created by sjjmw on 2/23/2022.
//

#ifndef LEETCODE__17_H
#define LEETCODE__17_H

//todo
// 假设有k个人质和k个绑匪围成一圈。人质的编号从1到k，绑匪的编号从k+1到2k。
// 从编号1开始，每次从其中选出第m个人(隔m-1选出一人)出列。
// 希望求出m的最小值，使得最先出列的k个人都是绑匪，即都是编号从k+1到2k的人。
#include "iostream"
struct Solution{
    void run(int n){
        for(int m=n+1;m<=100000;m++){
            int rz_cnt=n;
            int bsi=0;

            bsi+=m-1;bsi%=n+rz_cnt;
//            while(bsi>n+rz_cnt){
//                bsi-=n+rz_cnt;
//            }
            while(rz_cnt){
                if(bsi>=n){
                    rz_cnt-=1;
//                    bsi--;
                    bsi+=m-1;
                    bsi%=n+rz_cnt;
//                    while(bsi>n+rz_cnt){
//                        bsi-=n+rz_cnt;
//                    }
                }else{
                    goto fail;
                }
            }
            printf("%d\n",m);
            return;

            fail:
            ;
        }
    }
};
int main() {
    int a;
    while(std::cin>>a){
        Solution().run(a);
    }
    return 0;
}


#endif //LEETCODE__17_H
